﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CSharpBasic.DelegateTest
{
    /// <summary>
    /// </summary>
    public class DelegateTest6
    {

        /// <summary>
        /// 定义一个无参委托
        /// </summary>
        /// <returns></returns>
        private delegate void PrintInfo();

        //实例化委托
        private PrintInfo printInfo;

        /// <summary>
        /// 定义一个委托
        /// </summary>
        /// <param name="paramA"></param>
        /// <returns></returns>
        private delegate void InputChange(string paramA);
        //实体化一个委托
        InputChange inputChange;


        //方法1 
        private void Method1(string a)
        {
           Console.WriteLine("Method1:" + a);
        }

        //方法2
        private void Method2(string b)
        {
            Console.WriteLine("Method2:" + b);
        }

        /// <summary>
        /// new 一个委托需要指向一个方法
        /// str1.tostring 是一个String的一个方法名，
        /// 
        /// </summary>
        public  void DoTest1()
        {
            //将多个方法给委托
            inputChange += Method1;
            inputChange += Method2;

            //调用当前委托
            inputChange("abc");
        }
    }
    
}
